package t4.cardapio;

import java.io.File;
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import jxl.Sheet;
import jxl.Workbook;
import java.util.Scanner;
import jxl.DateCell;
import jxl.Cell;

/**
 *
 * @author andre_000
 */
class Itemcardapio {

    public Date data;
    public String carne;
    public String salada;
    public String complemento1;//massa, polenta, pão doce, batata palha
    public String complemento2;//arroz branco, arroz integral
    public String complemento3;//feijao preto, lentilha, feijao de cor
    public String suco;
    public String sobremesa;

    public static void impressao_cardapio(Itemcardapio cardapio_dia) {
        System.out.println("----------------------------------");
        System.out.println("Cardápio do dia:  " + cardapio_dia.data);
        System.out.println("Carne: " + cardapio_dia.carne);
        System.out.println("Salada: " + cardapio_dia.salada);
        System.out.println("Primeiro complemento: " + cardapio_dia.complemento1);
        System.out.println("Segundo complemento: " + cardapio_dia.complemento2);
        System.out.println("Terceiro complemento: " + cardapio_dia.complemento3);
        System.out.println("Suco: " + cardapio_dia.suco);
        System.out.println("Sobremesa: " + cardapio_dia.sobremesa);
        System.out.println("\n\n");
    }
}

public class T4Cardapio {

    public static void main(String[] args) throws ParseException  {
        // TODO code application logic here
        Workbook planilha; // objeto que receberá um instancia da planilha estudada
        Sheet aba = null; // objeto que será a aba
        File arquivo; // arquivo .xls que será lido
        int opcao = 0, contador = 0, i, caso1=0;
        Itemcardapio[] array_cardapio = new Itemcardapio[28];
        try {

            arquivo = new File("arq.xls");

// instancia a planilha
            planilha = Workbook.getWorkbook(arquivo);
//Obendo as Abas da planilha

            aba = planilha.getSheet(0);

        } catch (Exception e) {

            e.printStackTrace();

        }

        Scanner scanner = new Scanner(System.in);
        int linhas = aba.getRows();
        for (i = 0; i < linhas; i++) {
                        array_cardapio[i] = new Itemcardapio();//cada vez que ele inserir ele faz um new do
                        Cell celula1 = aba.getCell(0, i);//tentar criar um array de celulas
                        Cell celula2 = aba.getCell(1, i);
                        Cell celula3 = aba.getCell(2, i);
                        Cell celula4 = aba.getCell(3, i);
                        Cell celula5 = aba.getCell(4, i);
                        Cell celula6 = aba.getCell(5, i);
                        Cell celula7 = aba.getCell(6, i);
                        Cell celula8 = aba.getCell(7, i);
                        String dataStr = celula1.getContents();
                        //String formato = "dd/MM/yyyy";  
                        // Date data = new SimpleDateFormat(formato).parse(dataStr);  
                        SimpleDateFormat formataData = new SimpleDateFormat("dd/MM/yyyy");
                        Date data = null;
                        try {
                            data = formataData.parse(dataStr);
                        } catch (ParseException ex) {
                            ex.printStackTrace();
                        }

                        array_cardapio[i].data = data;
                        array_cardapio[i].carne = celula2.getContents();
                        array_cardapio[i].salada = celula3.getContents();
                        array_cardapio[i].complemento1 = celula4.getContents();
                        array_cardapio[i].complemento2 = celula5.getContents();
                        array_cardapio[i].complemento3 = celula6.getContents();
                        array_cardapio[i].suco = celula7.getContents();
                        array_cardapio[i].sobremesa = celula8.getContents();
                    }
                    //System.out.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
                    
        do {
            System.out.println("1 - Consultar periodo\n2 - Buscar alimentos na planilha\n3 - Encerrar o programa");
            System.out.println("Opção desejada: ");
            
            
            
            do{        
            opcao = scanner.nextInt();
            if(opcao<1 || opcao> 3){
                System.out.println("Opção incorreta, tente novamente\n\n\n");

            }
            }while(opcao<1 && opcao> 3);
            
            
            

            switch (opcao) {
                case 1:
                    String data_inicial, data_final;
                    Date data_i, data_f;
                    int i_final=0, i_inicial=0, aux=0;
                    System.out.println("---Consultar Cardapio---\n\nData Inicial: ");
                    data_inicial = scanner.next();
                    System.out.println("Data Final: ");
                    data_final = scanner.next();
                    
                    data_i = transforma_data(data_inicial);
                    data_f = transforma_data(data_final);
                    
                    for(i=0 ; i<linhas ; i++){
                        Cell data_excel = aba.getCell(0, i);
                        String dataString = data_excel.getContents();
                       // if(aux==0){
                            if(dataString.equals(data_inicial)) {
                                i_inicial = i;
                               // aux++;
                           // }
                        }
                       // else if(aux==1){
                            if(dataString.equals(data_final)) {
                                i_final = i;
                            }
                        //}
                    }
                    /*for(i=0 ; i<array_cardapio.length ; i++){
                        if(array_cardapio[i].data == data_i){
                            i_inicial = i;
                        }
                        else if (array_cardapio[i].data == data_f){
                            i_final = i;
                        }
                    }*/
                    
                    
                    for(i=i_inicial ; i<=i_final ; i++){
                        Itemcardapio.impressao_cardapio(array_cardapio[i]);
                    }
                    break;
                case 2:
                    try{
                      busca_alimento(array_cardapio);
                    
                  
                    }catch(NullPointerException achou){
                        System.out.println("O alimento informado nao esta contido no cardapio\n\n\n");
                    }
                    break;
                case 3:
                    System.out.println("Encerrando o programa...");
                    break;
            }
        } while (opcao != 3);
        
    }

    public static void busca_alimento(Itemcardapio array_cardapio[]) {
        //throw new UnsupportedOperationException("Not yet implemented");

        Scanner scanner = new Scanner(System.in);
        int i;
        
        System.out.println("Entre com o alimento que deseja realizar a consulta: ");
        String alimento = scanner.next();

        for (i = 0; i < array_cardapio.length; i++) {//que pratica de programação horrivel, mas fazer o que o/


            if (array_cardapio[i].carne.equals(alimento)) {
                Itemcardapio.impressao_cardapio(array_cardapio[i]);
                
            }
            if (array_cardapio[i].complemento1.equals(alimento)) {
                Itemcardapio.impressao_cardapio(array_cardapio[i]);
                
            }
            if (array_cardapio[i].complemento2.equals(alimento)) {
                Itemcardapio.impressao_cardapio(array_cardapio[i]);
                
            }
            if (array_cardapio[i].complemento3.equals(alimento)) {
                Itemcardapio.impressao_cardapio(array_cardapio[i]);
                
            }
            if (array_cardapio[i].salada.equals(alimento)) {
                Itemcardapio.impressao_cardapio(array_cardapio[i]);
                
            }
            if (array_cardapio[i].sobremesa.equals(alimento)) {
                Itemcardapio.impressao_cardapio(array_cardapio[i]);
                
            }
            if (array_cardapio[i].suco.equals(alimento)) {
                Itemcardapio.impressao_cardapio(array_cardapio[i]);
                
            }
        }
        
    }

    public static Date transforma_data(String dataStr) {
        
        SimpleDateFormat formataData = new SimpleDateFormat("dd/MM/yyyy");
                        Date data = null;
                        try {
                            data = formataData.parse(dataStr);
                        } catch (ParseException ex) {
                            ex.printStackTrace();
                        }
        return data;
    }
}
